<?
	/* Se asegura que el archivo es incluido por el index */
		defined( 'LOAD_MODULE_ACTION' ) or die( 'No esta permitido el acceso directo a ' . __FILE__ );  		
	/* Cuando se hace el include del archivo automaticamente crea un objeto y lo guarda en una variable temporal */
		$this->oTmpObject = new Establecimiento_Funcion_frm( $this );
	
	class Establecimiento_Funcion_frm extends Frm
	{
	function Establecimiento_Funcion_frm( &$oModule )
		{
			$this->Frm( $oModule );
			$this->aFields['ncEstablecimiento']	= new Input( "Codigo", "ncEstablecimiento", '', false, true );
			$this->aFields['ncFuncion']   			= new InputList( "Funcion", "ncFuncion" );
			$this->aFields['ncCategoria']   		= new InputList( "Categoria", "ncCategoria" );
			$this->aFields['cdEstablecimiento']	= new InputText ( "Nombre", "cdEstablecimiento" );
			$this->aFields['cPaginaWeb']			= new InputText ( "Web", "cPaginaWeb" );
			$this->aFields['cEmail']					= new InputText ( "Email", "cEmail" );
			$this->aFields['cTelefono']				= new InputText ( "Telefono", "cTelefono" );
			$this->aFields['cHorarios']				= createHorario ( 'Horarios', 'cHorarios' );
			$this->aFields['cEntrada']				= createEntrada();
			$this->aFields['cObservaciones']		= new InputText( "Observaciones", "cObservaciones" );
			$this->aFields['bActivo']   				= new InputList( "Activo", "bActivo" );
			$this->setMultiLanguage();
		}

	function setValue( $ncEstablecimiento, $ncFuncion )
		{
			$cSql = "SELECT *
								FROM gtEstablecimientoFuncion
								WHERE ncFuncion = $ncFuncion
									AND ncEstablecimiento = $ncEstablecimiento";
			$aRow = $this->oDatabase->getArray($cSql);
			$this->setFieldsArray ( $aRow );
		}
	function initializeForm()
		{
			// Configura el Titulo
				$this->setLabel( "Funciones" );
			// Si Recibe la Pk => busca los datos
				if ( $this->isRetrievable() && $this->aFields['ncFuncion']->getValue() && $this->aFields['ncEstablecimiento']->getValue() )
				{
					$this->setValue( $this->aFields['ncEstablecimiento']->getValue(), $this->aFields['ncFuncion']->getValue() );
				}
			return true;
		}		
	function initializeField( $cField , &$oField )
		{			
			switch ( $cField )
			{		
				case 'ncFuncion':
					$oField->setMandatory( $this->isMandatory() );
					$cSql = "SELECT ncFuncion, cdFuncion FROM gcFuncion";
					$oField->setLanguage( 'es' );
					$oField->setMatrix( $this->oDatabase->getMatrix($cSql) );
					$oField->setOnChangeAutoSubmit($this);
				break;
				case 'bActivo':				
					$oField->setBool();
					$oField->setDefault(true);
				break;
				case 'cObservaciones':				
					$oField->setMultiLanguage();
					$oField->setLength(4096);
					//$oField->setEditor();
				break;
				case 'ncCategoria':
					if ( $this->aFields['ncFuncion']->getValue()  )
					{
						$cSql = "SELECT ncCategoriaEstablecimiento, cdCategoriaEstablecimiento FROM gcCategoriaEstablecimiento WHERE ncFuncion = " . $this->aFields['ncFuncion']->getValue();
						$oField->setLanguage( 'es' );
						$oField->setMatrix( $this->oDatabase->getMatrix($cSql) );
					} else
					{
						$oField->setHidden(); 
					}
				break;
				case 'cHorarios':
				case 'cEntrada':
					$oField->setForm( $this );
				break;
				case 'cEmail':
				case 'cTelefono':
				case 'cPaginaWeb':
					$oField->setLength(50);
				break;
				case 'cdEstablecimiento':
					$oField->setLength(120);
				break;
			}
		}
	}
?>